Advertisement, or “ad,” insertion in the digital domain is considered a difficult task. A full recode of the stream can be done if there is sufficient hardware or processing resources. However, such hardware and processing resources are expensive and do not scale well (e.g., beyond a few streams per central processing unit (CPU), digital signal processor (DSP), or large application specific integrated circuit (ASIC)) with current technology. One of the issues is that buffer levels are maintained within the specified limits across the splice points, including both the out-point from the original stream to the ad, and the in-point from the ad back to the original stream. If buffer levels are not maintained within the specified limits across the splice points, then a buffer overflow may occur. When an overflow occurs, a viewer watching the video stream, for example, via a set-top box (STB), may see macro-blocking or other visual quality problems at the splice points.
Overview
Embodiments of an apparatus are described. In one embodiment, the apparatus is an apparatus to splice an ad into a data stream. The apparatus includes an ad segmenter, an ad variant generator coupled to the ad segmenter, and an ad variant selector coupled to the ad variant generator. The ad segmenter designates end portions of the ad, including beginning and ending portions of the ad, and designates an intermediate portion between the end portions. The ad variant generator generates a plurality of variants of at least one end portion. Each variant has a unique elementary stream bit-rate. The ad variant selector selects one variant for splicing into the data stream based on a decoder buffer level to buffer the data stream. Other embodiments of the apparatus are also described.
Other embodiments will become apparent from the following detailed description, taken in conjunction with the accompanying drawings, illustrated by way of example.
Throughout the description, similar reference numbers may be used to identify similar elements.